home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ham Radio
/
Ham Radio CD-ROM (Emerald Software) (1995).ISO
/
ant
/
antenna2
/
yagi.bas
< prev
Wrap
BASIC Source File
|
1986-08-11
|
11KB
|
358 lines
10 CLS:KEY OFF
20 KEY 1,"":KEY 10,""
30 LOCATE 25,1:PRINT"F1 = Change director spacing and reactance F10 = QUIT"
40 T$="3-ELEMENT YAGI ARRAY DESIGN":L=1:GOSUB 1790
50 PRINT:PRINT:PRINT
60 ' MAY 22, 86
70 ' AHMAD FAIZAL MOHD ZAIN
80 :
90 DEF FN LOGTEN(X)=LOG(X)/LOG(10)
100 DIM RZ(20,20),XZ(20,20)
110 DIM XX(30),YY(30)
120 DIM D(140),ZR(140),ZX(140)
130 :
140 GOTO 650 'MAIN PROG
150 :
160 ' OPERN IS TYPE OF OPERATION
170 ' OPERN=1 IS ADDN
180 ' OPERN=2 IS SUBTRACTION
190 ' OPERN=3 IS MULTIPLICATION
200 :
210 ' SUBROUTINE TO CONVERT RECTANGULAR TO POLAR COORD
220 ' PARAMETERS INPUTS X,Y
230 ' PARAMETERS OUTPUT Z,TH (TH IN RADIANS)
240 ' TH IN RADIANS
250 '
260 Z=SQR(X*X+Y*Y) 'MAGNITUDE
270 IF X>0 THEN TH=ATN(Y/X)
280 IF X<0 THEN TH=PI*SGN(Y)+ATN(Y/X)
290 IF X=0 THEN TH=(PI/2)*SGN(Y)
300 IF Y=0 AND X<0 THEN TH=PI
310 RETURN
320 '
330 ' SUBROUTINE TO CONVERT POLAR TO RECTANGULAR
340 ' PARAMETER INPUTS Z,TH
350 ' PARAMETER OUTPUT X,Y
360 '
370 X=Z*COS(TH)
380 Y=Z*SIN(TH)
390 RETURN
400 '
410 ' SUBROUTINE TO ADD TWO VECTORS IN POLAR FORM
420 ' INPUTS Z1,Z2,TH1,TH2
430 ' OUTPUT X,Y
440 '
450 Z=Z1:TH=TH1:GOSUB 330:X1=X:Y1=Y 'TAKES CARE OF FIRST VECTOR
460 Z=Z2:TH=TH2:GOSUB 330:X2=X:Y2=Y '-------------SECOND -------
470 IF OPERN=2 THEN 490 'SUBTRACT
480 X=X1+X2:Y=Y1+Y2: GOTO 500 'ADD
490 X=X1-X2:Y=Y1-Y2
500 RETURN 'RETURNS X,Y
510 '
520 ' SUBROUTINE TO MULT/DIVIDE TWO VECTORS
530 ' INPUT X1,X2,Y1,Y2
540 ' OUTPUT Z,TH
550 '
560 X=X1:Y=Y1:GOSUB 210 'RECT TO POLAR
570 Z1=Z:TH1=TH
580 X=X2:Y=Y2:GOSUB 210
590 Z2=Z:TH2=TH
600 IF OPERN=4 THEN 620 'DIVIDE
610 Z=Z1*Z2:TH=TH1+TH2: GOTO 630
620 Z=Z1/Z2:TH=TH1-TH2
630 RETURN
640 '
650 'MAIN PROG STARTS HERE
660 GOSUB 1810
670 PRINT:PRINT
680 CLS
690 LOCATE 25,1:PRINT"F1 = Change director spacing and reactance F10 = QUIT"
700 T$="3-ELEMENT YAGI ARRAY DESIGN":L=1:GOSUB 1790
710 PRINT:PRINT:PRINT
720 RZ(1,1)=ZR(0):XZ(1,1)=ZX(0)
730 RZ(2,2)=ZR(0):XZ(2,2)=ZX(0)
740 RZ(3,3)=ZR(0):XZ(3,3)=ZX(0)
750 INPUT"SEPERATION BETWEEN REFLECTOR AND DRIVER (IN LAMBDA) ";SR
760 INPUT"SEPERATION BETWEEN DIRECTOR AND DRIVER (IN LAMBDA) ";SD
770 GOTO 820
780 LOCATE 8,1:PRINT "DIRECTOR SPACING = ";
790 LOCATE 8,20:INPUT SD
800 LOCATE 8,40:PRINT "DIRECTOR REACTANCE = ";
810 LOCATE 8,61:INPUT XZ(3,3)
820 MR=100*SR:MD=100*SD 'TO GET OFFSET
830 MRD=MR+MD
840 :
850 PRINT
860 LOCATE 8,1:PRINT USING"DIRECTOR SPACING = ##.## ";SD
870 LOCATE 8,40:PRINT USING "DIRECTOR REACTANCE = ###.## ";XZ(3,3)
880 PRINT:PRINT
890 IF XZ(3,3)<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
900 PRINT USING"SELF-IMPEDANCE OF DIRECTOR :###.##";ZR(0);:PRINT SIGN$;:PRINT USING "###.##";ABS(XZ(3,3))
910 RZ(1,2)=ZR(MR):XZ(1,2)=ZX(MR)
920 RZ(1,3)=ZR(MRD):XZ(1,3)=ZX(MRD)
930 RZ(2,3)=ZR(MD):XZ(2,3)=ZX(MD)
940 :
950 ' FIND DRIVING POINT IMPEDANCE
960 X1=RZ(1,3):Y1=XZ(1,3)
970 X2=RZ(1,2):Y2=XZ(1,2)
980 OPERN=3:GOSUB 520 'Z(1,3)*Z(1,2)
990 ZTEM1=Z:THTEM1=TH 'TEMPORARY STORE
1000 X1=RZ(1,1):Y1=XZ(1,1)
1010 X2=RZ(2,3):Y2=XZ(2,3)
1020 OPERN=3:GOSUB 520 'Z11*Z23
1030 Z1=ZTEM1:TH1=THTEM1:Z2=Z:TH2=TH
1040 OPERN=2:GOSUB 410 'Z13*Z12 - Z11*Z23
1050 XTEM=X:YTEM=Y
1060 X1=RZ(1,3):Y1=XZ(1,3)
1070 X2=RZ(1,3):Y2=XZ(1,3)
1080 OPERN=3:GOSUB 520 'Z13*Z13
1090 ZTEM1=Z:THTEM1=TH
1100 X1=RZ(1,1):Y1=XZ(1,1)
1110 X2=RZ(3,3):Y2=XZ(3,3)
1120 OPERN=3:GOSUB 520 'Z11*Z33
1130 Z1=ZTEM1:TH1=THTEM1:Z2=Z:TH2=TH
1140 OPERN=2:GOSUB 410 'Z13*Z13 - Z11*Z33
1150 X1=XTEM:Y1=YTEM:X2=X:Y2=Y
1160 OPERN=4:GOSUB 520 ' (Z31*Z12-Z11*Z32)/(Z13*Z13-Z11*Z33)
1170 AZ=Z:ATH=TH
1180 MAGI3BY2=AZ:ANGI3BY2=PI+ATH
1190 X=RZ(1,3):Y=XZ(1,3):GOSUB 210:Z1=Z:TH1=TH
1200 Z2=AZ:TH2=ATH:OPERN=3:GOSUB 600 ' Z13*AZ
1210 GOSUB 330:X1=X:Y1=Y
1220 X2=RZ(1,2):Y2=XZ(1,2)
1230 OPERN=2:GOSUB 470:X1=X:Y1=Y 'Z13*AZ-Z12
1240 X2=RZ(1,1):Y2=XZ(1,1):OPERN=4:GOSUB 520
1250 MAGI1BY2=Z:ANGI1BY2=TH
1260 GOSUB 330:X1=X:Y1=Y
1270 X2=RZ(1,2):Y2=XZ(1,2)
1280 OPERN=3:GOSUB 520:GOSUB 330
1290 BX=X:BY=Y
1300 Z=AZ:TH=ATH:GOSUB 330:X1=X:Y1=Y
1310 X2=RZ(2,3):Y2=XZ(2,3)
1320 OPERN=3:GOSUB 520:GOSUB 330:CX=X:CY=Y
1330 DX=RZ(2,2):DY=XZ(2,2)
1340 ZDR=BX+DX-CX:ZDX=BY+DY-CY
1350 IF ZDX<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
1360 PRINT USING"DRIVING POINT IMPEDANCE : ###.##";ZDR;:PRINT SIGN$;:PRINT USING "###.##";ABS(ZDX)
1370 PRINT:PRINT
1380 :
1390 TH1=ANGI3BY2+2*PI*SD: Z1=MAGI3BY2
1400 TH2=ANGI1BY2+2*PI*SR: Z2=MAGI1BY2
1410 OPERN=1:GOSUB 410
1420 EFRONTX=X+1:EFRONTY=Y
1430 TH1=ANGI3BY2-2*PI*SD: Z1=MAGI3BY2
1440 TH2=ANGI1BY2-2*PI*SR: Z2=MAGI1BY2
1450 OPERN=1:GOSUB 410
1460 EBACKX=X+1:EBACKY=Y
1470 X1=EFRONTX:Y1=EFRONTY
1480 X2=EBACKX:Y2=EBACKY
1490 OPERN=4:GOSUB 520
1500 MAGEFTOB=Z
1510 PRINT USING"FRONT TO BACK RATIO = ##.###";MAGEFTOB
1520 PRINT USING"BACK TO FRONT RATIO = ##.###";1/MAGEFTOB
1530 J=J+1
1540 XX(J)=1/MAGEFTOB:YY(J)=XZ(3,3)
1550 ' CALCULATE GAIN ETC
1560 MAGEFRONT=SQR(3600*EFRONTX*EFRONTX+3600*EFRONTY*EFRONTY)
1570 MAGEBACK=SQR(3600*EBACKX*EBACKX+3600*EBACKY*EBACKY)
1580 POWER=MAGEFRONT*MAGEFRONT/240
1590 POWERBCK=MAGEBACK*MAGEBACK/240
1600 WATTRAD=ZDR/2
1610 D=4*POWER/WATTRAD
1620 DBACK=4*POWERBCK/WATTRAD
1630 PRINT:PRINT
1640 PRINT USING"DIRECTIVITY (FRONT)= ###.##";D;:PRINT USING" OR ###.##";10*FN LOGTEN(D);:PRINT" dB"
1650 PRINT USING"DIRECTIVITY (BACK) = ###.##";DBACK;:PRINT USING" OR ###.##";10*FN LOGTEN(DBACK);:PRINT" dB"
1660 A$=INKEY$
1670 IF LEN(A$)<>2 THEN 1660
1680 ANS=ASC(MID$(A$,2,1))
1690 IF ANS=59 THEN 780
1700 IF ANS=68 THEN 1730
1710 GOTO 1660
1720 PRINT:PRINT
1730 T$="DO YOU WANT TO RUN THIS PROGRAM AGAIN (Y/N)? ":L=23:GOSUB 1790
1740 AN$=INKEY$
1750 IF AN$="Y" OR AN$="y" THEN GOTO 680
1760 IF AN$="N" OR AN$="n" THEN END
1770 GOTO 1730
1780 :
1790 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN 'SUBROUTINE TO CENTRE TEXT
1800 END
1810 REM 05/22/86 AHMAD FAIZAL MOHD ZAIN
1820 PI=3.141592
1830 PRINT:PRINT:PRINT
1840 FOR I=0 TO 139
1850 READ D(I),ZR(I),ZX(I)
1860 NEXT I
1870 RETURN
1880 :
1890 REM ZEROTH-ORDER MUTUAL IMPEDANCE BETWEEN PARALLEL,
1900 REM SIDE-BY-SIDE, HALF-WAVE DIPOLE
1910 :
1920 DATA 0.0, 73.1296, 42.5445
1930 DATA .01, 73.0903, 38.8086
1940 DATA .02, 72.9246, 35.1090
1950 DATA .03, 72.6347, 31.4521
1960 DATA .04, 72.2232, 27.8467
1970 :
1980 DATA .05, 71.6917, 24.2932
1990 DATA .06, 71.0431, 20.7999
2000 DATA .07, 70.2800, 17.3723
2010 DATA .08, 69.4058, 14.0181
2020 DATA .09, 68.4223, 10.7371
2030 DATA .10, 67.3336, 7.5383
2040 DATA .11, 66.1719, 4.4274
2050 DATA .12, 64.8997, 1.4039
2060 DATA .13, 63.5223, -1.5281
2070 DATA .14, 62.0465, -4.3622
2080 :
2090 DATA .15, 60.4753, -7.0992
2100 DATA .16, 58.8152, -9.7331
2110 DATA .17, 57.0716, -12.2608
2120 DATA .18, 55.2514, -14.6774
2130 DATA .19, 53.3572, -16.9839
2140 :
2150 DATA .20, 51.3967, -19.1747
2160 DATA .21, 49.3797, -21.2491
2170 DATA .22, 47.3045, -23.2050
2180 DATA .23, 45.1764, -25.0407
2190 DATA .24, 43.0023, -26.7536
2200 :
2210 DATA .25, 40.7842, -28.3450
2220 DATA .26, 38.5292, -29.8126
2230 DATA .27, 36.2428, -31.1558
2240 DATA .28, 33.9325, -32.3732
2250 DATA .29, 31.6002, -33.4663
2260 :
2270 DATA .30, 29.2551, -34.4336
2280 DATA .31, 26.8992, -35.2747
2290 DATA .32, 24.5401, -35.9916
2300 DATA .33, 22.1832, -36.5854
2310 DATA .34, 19.8358, -37.0571
2320 :
2330 DATA .35, 17.5000, -37.4087
2340 DATA .36, 15.1829, -37.6416
2350 DATA .37, 12.8898, -37.7579
2360 DATA .38, 10.6278, -37.7597
2370 DATA .39, 8.3985, -37.6493
2380 :
2390 DATA .40, 6.2100, -37.4296
2400 DATA .41, 4.0667, -37.1015
2410 DATA .42, 1.9724, -36.6699
2420 DATA .43, -0.0687, -36.1382
2430 DATA .44, -2.0509, -35.5106
2440 :
2450 DATA .45, -3.9731, -34.7899
2460 DATA .46, -5.8299, -33.9805
2470 DATA .47, -7.6178, -33.0864
2480 DATA .48, -9.3320, -32.1128
2490 DATA .49, -10.9718, -31.0624
2500 :
2510 DATA .50, -12.5321, -29.9413
2520 DATA .51, -14.0105, -28.7513
2530 DATA .52, -15.4049, -27.4993
2540 DATA .53, -16.7132, -26.1904
2550 DATA .54, -17.9325, -24.8309
2560 :
2570 DATA .55, -19.0631, -23.4237
2580 DATA .56, -20.1024, -21.9750
2590 DATA .57, -21.0492, -20.4901
2600 DATA .58, -21.9020, -18.9754
2610 DATA .59, -22.6613, -17.4340
2620 :
2630 DATA .60, -23.3256, -15.8729
2640 DATA .61, -23.8922, -14.2970
2650 DATA .62, -24.3642, -12.7109
2660 DATA .63, -24.7424, -11.1198
2670 DATA .64, -25.0274, -9.5299
2680 :
2690 DATA .65, -25.2206, -7.9438
2700 DATA .66, -25.3233, -6.3674
2710 DATA .67, -25.3369, -4.8055
2720 DATA .68, -25.2634, -3.2640
2730 DATA .69, -25.1045, -1.7450
2740 :
2750 DATA .70, -24.8626, -0.2548
2760 DATA .71, -24.5389, 1.2023
2770 DATA .72, -24.1371, 2.6231
2780 DATA .73, -23.6602, 4.0039
2790 DATA .74, -23.1116, 5.3397
2800 :
2810 DATA .75, -22.4936, 6.6293
2820 DATA .76, -21.8100, 7.8683
2830 DATA .77, -21.0642, 9.0535
2840 DATA .78, -20.2606, 10.1813
2850 DATA .79, -19.4016, 11.2506
2860 :
2870 DATA .80, -18.4922, 12.2574
2880 DATA .81, -17.5345, 13.1984
2890 DATA .82, -16.5337, 14.0734
2900 DATA .83, -15.4941, 14.8807
2910 DATA .84, -14.4207, 15.6184
2920 :
2930 DATA .85, -13.3162, 16.2864
2940 DATA .86, -12.1855, 16.8832
2950 DATA .87, -11.0330, 17.4079
2960 DATA .88, -9.8640, 17.8597
2970 DATA .89, -8.6809, 18.2391
2980 :
2990 DATA .90, -7.4896, 18.5454
3000 DATA .91, -6.2939, 18.7768
3010 DATA .92, -5.0977, 18.9360
3020 DATA .93, -3.9052, 19.0238
3030 DATA .94, -2.7212, 19.0409
3040 :
3050 DATA .95, -1.5478, 18.9887
3060 DATA .96, -0.3900, 18.8686
3070 DATA .97, 0.7486, 18.6819
3080 DATA .98, 1.8635, 18.4307
3090 DATA .99, 2.9528, 18.1166
3100 :
3110 DATA 1.00, 4.0116, 17.7420
3120 DATA 1.01, 5.0360, 17.3073
3130 DATA 1.02, 6.0244, 16.8167
3140 DATA 1.03, 6.9738, 16.2728
3150 DATA 1.04, 7.8808, 15.6788
3160 :
3170 DATA 1.05, 8.7444, 15.0368
3180 DATA 1.06, 9.5616, 14.3502
3190 DATA 1.07, 10.3300, 13.6222
3200 DATA 1.08, 11.0473, 12.8566
3210 DATA 1.09, 11.7126, 12.0554
3220 :
3230 DATA 1.10, 12.3236, 11.2233
3240 DATA 1.11, 12.8772, 10.3624
3250 DATA 1.12, 13.3742, 9.4769
3260 DATA 1.13, 13.8139, 8.5703
3270 DATA 1.14, 14.1952, 7.6469
3280 :
3290 DATA 1.15, 14.5182, 6.7088
3300 DATA 1.16, 14.7824, 5.7604
3310 DATA 1.17, 14.9876, 4.8051
3320 DATA 1.18, 15.1339, 3.8473
3330 DATA 1.19, 15.2219, 2.8891
3340 :
3350 DATA 1.20, 15.2518, 1.9351
3360 DATA 1.21, 15.2224, 0.9886
3370 DATA 1.22, 15.1367, 0.0527
3380 DATA 1.23, 14.9957, -0.8697
3390 DATA 1.24, 14.8009, -1.7747
3400 :
3410 DATA 1.25, 14.5535, -2.6605
3420 DATA 1.26, 14.2553, -3.5237
3430 DATA 1.27, 13.9081, -4.3612
3440 DATA 1.28, 13.5141, -5.1700
3450 DATA 1.29, 13.0748, -5.9485
3460 :
3470 DATA 1.30, 12.5930, -6.6930
3480 DATA 1.31, 12.0693, -7.4008
3490 DATA 1.32, 11.5076, -8.0708
3500 DATA 1.33, 10.9104, -8.7012
3510 DATA 1.34, 10.2808, -9.2899
3520 :
3530 DATA 1.35, 9.6207, -9.8361
3540 DATA 1.36, 8.9333, -10.3379
3550 DATA 1.37, 8.2216, -10.7941
3560 DATA 1.38, 7.4890, -11.2033
3570 DATA 1.39, 6.7374, -11.5652